package com.weavernorth.sysap.timer;


import com.weavernorth.sysap.checkstatus.CheckSuccessStatus;
import com.weavernorth.sysap.service.SyncOrgStrucService;
import com.weavernorth.sysap.service.SyncOrgStrucServiceImpl;
import com.weavernorth.util.Logger4jUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Logger;
import weaver.interfaces.schedule.BaseCronJob;

import java.util.Date;

import static weaver.common.DateUtil.getDateTime;

/**
 * 同步组织架构定时任务-增量同步
 *
 * @author Zm
 * @version v1.0 created by 2019-10-09
 */
public class SyncOrganizationStructureTimer extends BaseCronJob {

//    private static Log log = LogFactory.getLog(SyncOrganizationStructureTimer.class.getName());
    @Override
    public void execute() {
        Logger log =Logger4jUtil.getLoggerByName("/Timmer/synchronization_log/");
        SyncOrgStrucService sosService = new SyncOrgStrucServiceImpl();
        log.info("组织同步定时任务,增量同步");
        //isall为0 ,全量同步,1为增量同步
        //组织同步
        log.info("===========================组织同步开始======================================");
        Long begin_org = new Date().getTime();
        log.info("组织同步开始时间："+getDateTime());

        sosService.syncOrgInfo(log,"1");

        Long end_org = new Date().getTime();
        log.info("组织同步结束时间："+getDateTime());
        log.info("时间周期："+(end_org - begin_org) / (1000*60)+"分钟");
        log.info("===========================组织同步结束======================================");
        //同步岗位
        log.info("===========================岗位同步开始======================================");
        Long begin_job = new Date().getTime();
        log.info("岗位同步开始时间："+getDateTime());

        sosService.syncJobtitlesInfo(log,"1");

        Long end_job = new Date().getTime();
        log.info("岗位同步结束时间："+getDateTime());
        log.info("时间周期："+(end_job - begin_job) / (1000*60)+"分钟");
        log.info("===========================岗位同步结束======================================");
        //人员同步,暂时无增量接口,需全量同步
        log.info("===========================人员同步开始======================================");
        Long begin_ry = new Date().getTime();
        log.info("人员同步开始时间："+getDateTime());

        sosService.syncResourceInfo(log,"1");

        Long end_ry = new Date().getTime();
        log.info("人员同步结束时间："+getDateTime());
        log.info("时间周期："+(end_ry - begin_ry) / (1000*60)+"分钟");
        log.info("===========================人员同步结束======================================");
        //同步完成后,调用检测接口,更新离职人员,封存部门
        log.info("检查接口执行开始,更新离职人员:");
        CheckSuccessStatus checkSuccessStatus=new CheckSuccessStatus();
        checkSuccessStatus.setLog(log);
        checkSuccessStatus.checkStatus();
        log.info("检查接口执行结束:");

    }
}
